1. Field of the Invention
This contribution relates to an interface for an Application Program Interface (API).
2. Description of the Related Art
As computer performance has increased in recent years, the demands on computer networks has significantly increased; faster computers processors and higher memory capabilities need networks with high bandwidth capabilities to enable high speed transfer of significant amounts of data. The well known Ethernet technology, which is one example of computer networking technology which has been able to be modified and improved to remain a viable computing technology.
Based upon the Open System Interconnect (OSI) 7-layer reference model, network capabilities have grown through the development of repeaters, bridges, routers and switches, which operate with various types of communication media. Collectively, with respect to the present invention, all of these may be referred to as network devices. Switches, as they relate to computer networking and to Ethernet, are hardware-based devices which control the flow of datagrams, data packets or cells based upon destination address information which is available in each packet. A properly designed and implemented switch should be capable of receiving a packet and switching the packet to an appropriate output port at the maximum speed capability of the particular network.
Referring to the OSI 7-layer reference model discussed previously, the higher layers typically have more information. Various types of products are available for performing switching-related functions at various levels of the OSI model. Hubs or repeaters operate at layer 1, and essentially copy and “broadcast” incoming data to a plurality of spokes of the hub. Layer 2 switching-related devices are typically referred to as multiport bridges, and are capable of bridging two separate networks. Bridges can create a table of forwarding rules based upon which media access controller (MAC) address exist on which ports of the bridge, and pass packets that are destined for an address which is located on an opposite side of the bridge. Bridges typically utilize what is known as the “spanning tree” algorithm to eliminate potential data loops; a data loop is a situation wherein a packet endlessly loops in a network looking for a particular address. The spanning tree algorithm defines a protocol for preventing data loops. Layer 3 switches, sometimes referred to as routers, can forward packets based upon the destination network address. Layer 3 switches are capable of learning addresses and maintaining tables thereof which correspond to port mappings. Processing speed for layer 3 switches can be improved by utilizing specialized high performance hardware, and off loading the host CPU so that instruction decisions do not delay packet forwarding.
In addition, there has also been pressure from the implementers of the computer networks to have network devices to mediate traffic on the computer networks that are flexible and are able to provide the needed capacity through the combination of multiple network devices. For example, a network device having eight ports may be linked with one or more similar network devices to provide the capacity of the multiple ports of the linked devices. While the combination of multiple network devices may be ideal in meeting capacity requirements, the combination of the network devices also results in other issues. One such issue is that each network device has its own means for determining the destination port for a received datagram and those means must be synchronized to provide efficient operation. While the prior art network devices and methods provide many of these attributes, there is a need for network devices that may be used together to provide the capacity needed by the implementers and provide efficiency in handling of datagrams.
Today's network switching products often require high port density, centralized management, redundancy, modularity and many other features. Providing these features requires flexible, distributed approaches coordinating multiple CPUs, which support components that may be added or removed dynamically.
There are different methods in the art to provide upgrades among different product lines and to provide multi-product support for these products. The problems associated with providing upgrades and related support is that each of the products or different versions of the products require different arguments.
For example, to create a VLAN that includes all 24 Gigabit ports, each device must be programmed to create the VLAN, add all 12 GE ports to the VLAN, as well as add the links to the VLAN. An appropriate API is needed in order to enable rapid and accurate development on configurations with multiple devices.
There are different methods in the art to provide upgrades among different product lines and to provide multi-product support for these products. The problems associated with providing upgrades and related support is that each of the products or different versions of the products require different arguments.